package com.demo01;

import org.junit.jupiter.api.Test;

import java.util.*;

public class Doudizhu {
    public static void main(String[] args) {

        /**
         * 需求： 给出A， B 两幅牌，A牌先出，B牌后出，怎么才能让A牌一定能够赢B牌
         *      一、出牌规则：
         *          1、单张
         *          2、对子（两张同一个数字）
         *          3、三带一
         *          4、三带一对
         *          5、炸
         *          6、四带2
         *          7、四带两对
         *          8、如果两张牌是大小王，那么就是最大的炸
         *
         *      二、管牌规则
         *          1、单张牌 < 比这张牌大的 < 炸
         *          2、对子    同上
         *          3、三带一 < 三张一样数字的牌的 三带一 < 炸
         *          4、三带一对 同上
         *          5、炸 < 大炸 < 对王
         *          6、四带2 < 大的四带2 < 炸 < 对王
         *          7、四带两对 同上
         *          8、对王是最大的，没有比这个大的了
         *
         *      三、思路：
         *          1、A先出牌 ， B有两种选择
         *                  不要
         *                   要
         *             此方法就是贪心算法
         *             要记录当前节
         *
         */
        Pai a = new Pai();
        Pai b = new Pai();
        a.arr = new int[]{2, 2, 1, 12, 10, 10, 9, 6, 5};
        b.arr = new int[]{14, 2, 13, 13, 11, 11, 8, 7, 7, 6, 5, 3, 3};
        //栈式操作
        List<Map<Integer,Integer>> chupai = new LinkedList<>();
        nextChu(a,b, chupai);
    }

    /**
     * 栈式操作
     * @param a
     * @param b
     * @return
     */
    public static String nextChu(Pai a, Pai b, List<Map<Integer, Integer>> chupai) {

        chupai(a, chupai);

        return "";
    }

    /**
     * A先出牌
     *
     * @param A
     * @return
     */
    public static void chupai(Pai A,List<Map<Integer, Integer>> chupai) {
        //存放出的牌
        Map<Integer, Integer> map = new HashMap<>();

    }

}

class Pai {
    int[] arr;

    /**
     * 管牌规则
     */
    public void guanpai(int arr2[]) {

    }
}

class LinkedHashMapTest{

    static Map map = new LinkedHashMap<>();

    @Test
    public void demo01(){
        System.out.println("a");
    }

}